//WMPPlugin.h
#include <wmpplug.h>

#pragma once

class WMPPlugin: public IWMPPluginUI {
	CLSID clsid;
	IWMPPluginUI *plugin;
public:
	WMPPlugin(REFCLSID clsid, IWMPPluginUI *plugin);

	HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
	ULONG STDMETHODCALLTYPE AddRef();
	ULONG STDMETHODCALLTYPE Release();

	HRESULT STDMETHODCALLTYPE SetCore(IWMPCore *core);
	HRESULT STDMETHODCALLTYPE Create(HWND hwndParent, HWND *phwndWindow);
	HRESULT STDMETHODCALLTYPE Destroy();
	HRESULT STDMETHODCALLTYPE DisplayPropertyPage(HWND hwndParent);
	HRESULT STDMETHODCALLTYPE GetProperty(const WCHAR *pwszName, VARIANT *pvarProperty);
	HRESULT STDMETHODCALLTYPE SetProperty(const WCHAR *pwszName, const VARIANT *pvarProperty);
	HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg);
};

IWMPPluginUI* WrapPlugin(REFCLSID clsid, IWMPPluginUI *plugin);
